1. Technical Field
The present invention relates to a communication method for establishing communication among a plurality of communication apparatuses sharing a communication band and to a communication apparatus and an integrated circuit therefor.
2. Background Art
In a communication system that establish communication among a plurality of communication apparatuses sharing a communication band, such as power line communication, a wireless LAN (Local Area Network), and the like, the plurality of communication apparatuses perform communication by use of one transmission channel, and hence congestion among accesses from the plurality of communication apparatuses must be avoided.
One of the methods is a CSMA (Carrier Sense Multiple Access) scheme. Under the scheme, respective communication apparatuses monitor usage conditions of the transmission channel and perform transmission when another communication apparatus does not use the transmission channel (when the transmission channel is in an idle state). When it is detected that another communication apparatus does not use the transmission channel, transmission is commenced after elapse of a random wait time (a back-off time).
FIG. 10 shows an example of timing at which data are transmitted under the CSMA scheme. When the communication apparatus A transmits a packet PA1 at time T1, a communication apparatus B connected to the same transmission channel (a same network) detects the packet PA1 at time T2 achieved after a lapse of a carrier detection time Ct, thereby detecting that the transmission channel is in use. When the communication apparatus B attempts to perform transmission by way of the transmission channel, the communication apparatus B waits end of the packet PA1 from the communication apparatus A.
When end of transmission of the packet PA1 performed by the communication apparatus A is detected at time T3, the communication apparatus B remains on standby for a period of time (a random back-off time) that is a random multiple of a unit back-off time (a slot time) St. Specifically, when counting is performed each time a slot time St elapses and when the counted value reaches a random value generated at that time, a packet PB1 is transmitted. An example shown in FIG. 10 is a case where a random value assumes a value of 8, and the packet PB1 is transmitted at time T4 achieved after the communication apparatus B has remained on standby for St×8. The slot time St is set to a value that is equal to or greater than the carrier detection time Ct. Therefore, when another communication apparatus for which a small random value has arisen starts transmission, commencement of transmission of another communication apparatus can be detected without fail before counting of slots.
In the example shown in FIG. 10, a carrier is not detected until the random value 8 is counted; hence, the communication apparatus B can transmit a packet PB1. However, when there is another communication apparatus for which a random value smaller than eight has arisen, a carrier is detected before time T4 is achieved, and counting is stopped. The communication apparatus B waits until a packet of the other communication apparatus is completed. A method for generating a random value does not need to be constant, and the maximum value of the random value that arises in accordance with a priority level may also be changed. For instance, when the maximum value is increased at the time of re-transmission (the random value returns to the original maximum value when re-transmission is successful) or when counting is stopped by detection of a carrier of another communication apparatus during standby, it is possible to avoid a continued state where one communication apparatus cannot perform communication, by means of decreasing the maximum value (the random value returns to the original maximum value when transmission is successful). A point at time T3 at which transmission of the packet PA1 of the communication apparatus A is completed is taken as a point in time achieved when an IFS (an inter-Frame Space) defined in IEEE802.11 standards elapses from when a carrier is not detected.
As mentioned above, as a result of the CSMA scheme being adopted, even when a plurality of communication apparatuses attempt to perform transmission by way of a single transmission channel, commencement of transmission is made possible after elapse of a random back-off time that is a random wait time, so that the chance of a collision can be reduced. The random back-off time will often be hereinafter described as a “back-off time,” a “back-off period,” or a “BO.”
In the meantime, in a communication system that establish communication among a plurality of communication apparatuses sharing a communication band, such as power line communication and a wireless LAN (Local Area Network), assurance of QoS (Quality of Service) is required even when a variety of kinds of data are mixedly present in a transmission channel. In particular, in the case of stream transfer of data that are to be transmitted and that are cyclic and subjected to limitations of delay conditions; for instance, VoIP (Voice on Internet Protocol) and a video, an interruption arises in data when fluctuations are present in a communication band; hence, it is required to perform transmission while a sufficient communication band is assured.
However, the CSMA scheme is basically a scheme for making an access after elapse of a random back-off time, the chance of a successful access will be reduced if the number of apparatuses that make an access (the number of communication apparatuses connected to a network) is increased, and it becomes difficult to assure the maximum delay for data, such as that being subjected to limitations of delay conditions.
A priority control technique for ensuring QoS is; for instance, a wireless LAN technique (IEEE802.11e) described in U.S. Pat. No. 7,095,754. The technique described in the document is for inserting a gap time (hereinafter often described simply as “gap”), which is a fixed wait time, between frames separately from the back-off time. Since the gap time changes according to a priority level of transmitting data (the time is short in the case of a high priority level but long in the case of a low priority level), high-priority data can be reliably transmitted by priority.
FIGS. 11A and 11B show examples of timings for a case where data are transmitted while a gap time whose length changes according to a priority level of the data is added to the data. In an example shown in FIGS. 11A and 11B, a priority level of transmitting data includes three stages: namely, a high priority, a normal priority, and a low priority, and a gap time for the case where the priority level is a high priority is zero. When the priority level is a “normal priority” and a “low priority,” a gap time is set; however, the gap time is set such that a gap time for the case where the priority level is a low priority becomes longer than a gap time for the case where the priority level is a normal priority.
In the example shown in FIG. 11A, terminals 1 and 2 are about to transmit “high priority” data; a terminal 3 is about to transmit “normal priority” data; and terminals 4 and 5 are about to transmit “low priority” data. When an idle state of the transmission channel is detected at time t1 in FIG. 11A, the terminals 1 and 2 start clocking a back-off time, and the terminals 3, 4, and 5 start clocking the gap time. Since the back-of time of the terminal 1 first elapses, the terminal 1 initiates transmission of data. At a point in time when the back-off time of the terminal 2 has elapsed and when the gap times of the terminals 3 to 5 have elapsed, the transmission channel is already out of an idle state; hence, the terminal 2 does not transmit data, and the terminals 3 to 5 do not perform clocking of back-off times. In the drawings and drawings for describing subsequent timings, a clocking block and a data transmission block, which are surrounded by broken lines, show operation which is not actually performed. The idle state is a state where no data flow in the transmission channel.
The terminals 2 through 5, which hold transmitting data at time t2 that is achieved after elapse of the IFS since the terminal 1 completes transmission of data, start clocking a back-off time or a gap time as with the time t1. The back-off time of the terminal 2 first elapses at this time, the second terminal starts transmitting data. Since the transmission channel is already out of an idle state at a point in time when the gap times of the terminals 3 through 5 have elapsed, the terminals 3 through 5 do not clock back-off times.
The terminals 3 through 5, which hold transmitting data at time t3 that is achieved after elapse of the IFS since the terminal 2 completed transmission of data, start clocking a gap time and subsequently clocking a back-off time as with the time t1. The gap time and back-off time of the terminal 3 first elapse at this time, the third terminal starts transmitting data. Since the transmission channel is already out of an idle state at a point in time when the gap times and back-off times of the terminals 4 and 5 have elapsed, the terminals 4 and 5 do not transmit data.
The terminals 4 and 5, which hold transmitting data at time t4 that is achieved after elapse of the IFS since the terminal 3 completed transmission of data, start clocking a gap time and subsequently clocking a back-off time as with the time t1. The gap time and back-off time of the terminal 4 first elapse at this time, the terminal 4 starts transmitting data. Since the transmission channel is already out of an idle state at a point in time when the gap time and back-off time of the terminal 5 elapsed, the terminal 5 does not transmit data.
As mentioned above, the duration of the gap time is changed according to a priority level of transmitting data, whereby high-priority data are first transmitted when a plurality of terminals are about to transmit data.
In another example shown in FIG. 11B, the terminals 4 and 5 are about to transmit “low priority” data. When an idle state of the transmission channel is detected at time t1 in FIG. 11B, the terminals 4 and 5 start clocking gap times and subsequently clocking back-off times. Since both kinds of data that the terminals 4 and 5 are about to transmit have low priority levels, a gap time of the same duration is clocked, and a back-off time is subsequently clocked. Since the back-off time of the terminal 4 first elapses, the terminal 4 starts transmitting data. Since the transmission channel is already out of an idle state at a point in time when the gap time and the back-off time of the terminal 5 have elapsed, the terminal 5 does not transmit data.
The terminals 4 and 5, which hold transmitting data at time t12 that is achieved after elapse of the IFS since the terminal 4 completed transmission of data, start clocking a gap time and subsequently clocking a back-off time as with the time t11. The gap time and back-off time of the terminal 5 first elapse at this time, the terminal 5 starts transmitting data. Since the transmission channel is already out of an idle state at a point in time when the gap time and back-off time of the terminal 5 elapsed, the terminal 4 does not transmit data.
The terminal 4, which holds transmitting data at time t13 that is achieved after elapse of the IFS since the terminal 5 completed transmission of data, start clocking a gap time and subsequently clocking a back-off time as with the time t11. The terminal 4 starts transmitting data at a point in time when the gap time and back-off time of the terminal 4 have elapsed.
Thus, when contention arises at the time of transmission of data having the same priority level, any of the terminals transmit data in accordance with a random value of the back-off time.
As mentioned above, a gap time that is a fixed wait time is inserted between frames separately from a back-off time, the duration of the gap time is changed according to transmitting data, whereby high priority data are transmitted by priority in an environment (see FIG. 11A) where data having different priority levels are mixedly present. However, in an example where only data having low priority levels are present (see; for instance, FIG. 11B), a gap time is inserted before transmission of all kinds of data, the gap time becomes a waste time, which in turn deteriorates transmission efficiency.
Moreover, even when an attempt is made to transmit data having a high priority level in a prioritized manner by insertion of a gap time, a case where a requested delay time (a limit value of delay conditions) is not fulfilled arises depending on the data length (frame length) of transmitting data. Influence of a frame length will be described by reference to FIG. 12.
In the example shown in FIG. 12, the terminals 1 and 2 are about to transmit “high priority” data, and the terminal 5 is about to transmit “low priority” data. When an idle state of the transmission channel is detected at time t1 in FIG. 12, the terminal 5 holding transmitting data starts clocking a gap time and a back-off time and starts transmitting data at time t2 that is a point in time when the back-off time elapses.
Subsequently, even when transmitting data to the terminal 2 arises at time t3 and when transmitting data to the terminal 1 arises at time t4, the transmission channel is in the middle of transmitting data from the terminal 5, and hence clocking of the back-off time by the terminals 1 and 2 is not started. Transmission of data from the terminal 5 ends at time t5; the terminals 1 and 2 holding transmitting data start clocking back-off times at time t6 achieved after elapse of the IFS; and the terminal 5 starts clocking a gap time. Since the back-off time of the terminal 1 first elapses, the terminal 1 starts transmitting data. At a point in time when the back-off time of the terminal 2 has elapsed and when the gap time of the terminal 5 has elapsed, the transmission channel is already out of an idle state; hence, the terminal 2 does not transmit data, and the terminal 5 does not clock the back-off time.
Transmission of data from the terminal 1 ends at time t7, and the terminal 2 holding transmitting data starts clocking a back-off time at time t8 achieved after elapse of the IFS, and the terminal 5 starts clocking a gap time. Here, since the back-off time of the terminal 2 first elapses, the terminal 2 starts transmitting data. Since the transmission channel is already out of an idle state at a point in time when the gap time of the terminal 5 has elapsed, the terminal 5 does not clock a back-off time.
As mentioned above, even in the middle of transmission of data having a low priority level, transmission of high-priority data is commenced after the transmission of data having the low priority level. However, there may arise a case where a requested delay time of high priority data is not fulfilled if no limitations are imposed on the duration of transmitting data. In an example shown in FIG. 12, since the length (designated by a double-headed arrow of a solid line) of data from the terminal 5 is long, transmission of data from the terminal 1 and transmission of data from the terminal 2 do not satisfy a requested delay time of high priority data (designated by a double-headed arrow of a dashed line). Specifically, the data delay time of the terminal 1 (a time from time t4 when transmitting data arises until time t7 when transmission of data ends is designated by a broken line) and the data delay time of the terminal 2 (a time from time t3 when transmitting data arises until time t9 when transmission of data ends is designated by a broken line) becomes longer than the requested delay time.
Collision between data having the same priority level cannot be avoided in terms of a probability. When collision arises, a data delay time increases Hence, it is necessary to prevent the data delay time from exceeding a requested delay time even when collision arises by increasing the number of transmission operations performed within the requested delay time.